حافظه مجازی یکی از ویژگی های یک سیستم عامل است که از سخت افزار و نرم افزار برای جبران کمبود حافظه فیزیکی استفاده می کند. صفحات داده را از حافظه دسترسی تصادفی (RAM) به حافظه دیسک منتقل می کند. مایکروسافت این فرآیند را با این که چگونه یک بلیت فیلم به عنوان یک عامل کنترل کننده بین تقاضا و صندلی های یک تئاتر عمل می کند مقایسه می کند. این فرآیندی است که در Windows، MacOS، Android و iOS در دسترس است. در این مقاله به معرفی حافظه مجازی چیست؟ می پردازیم:
حافظه مجازی چگونه کار می کند؟
حافظه مجازی از طریق یک فرآیند موقت، معروف به مبادله، کار می کند که رم و فضای روی هارد دیسک را ترکیب می کند. در رایانه شخصی، RAM حافظه فیزیکی است که در آن داده های سیستم عامل، برنامه های در حال اجرا و اسناد باز نگهداری می شود. هنگامی که RAM کم است، حافظه مجازی می تواند داده ها را از RAM به فضایی به نام فایل صفحه بندی منتقل کند. این فرآیند اجازه می دهد تا RAM آزاد شود تا کامپیوتر بتواند کار را کامل کند.گاهی اوقات ممکن است پیامی به کاربر نشان داده شود که حافظه مجازی در حال اتمام است. این بدان معناست که یا باید رم بیشتری اضافه شود یا حجم فایل پیجینگ باید افزایش یابد. به طور معمول، سیستم عامل هایی مانند ویندوز این فرآیند را به طور خودکار مدیریت می کنند. همچنین اگر اندازه پیش فرض حافظه مجازی به اندازه کافی بزرگ نباشد، می توان آن را به صورت دستی تغییر داد.
چرا حافظه مجازی مورد نیاز است؟
داده های RAM می توانند در هر زمان تغییر کنند. به عنوان مثال، یک کاربر ممکن است فقط یک برنامه یا یک سند باز داشته باشد، گاهی اوقات ممکن است چندین برنامه و اسناد باز داشته باشد. هرچه رم دستگاه بیشتر باشد، داده ها و برنامه های بیشتری می تواند همزمان اجرا شود.مواقعی پیش میآید که یک دستگاه دارای تعداد زیادی برنامه باز است و رم کافی برای اجرای آنها وجود ندارد. انتقال اطلاعات از RAM به هارد دیسک باعث آزاد شدن RAM می شود. این داده در آن زمان استفاده نمی شود.
با این حال، استفاده از حافظه مجازی به این معنی است که دستگاه نسبت به زمانی که از رم استفاده می کرد کندتر کار می کند. این به این دلیل است که پردازنده باید منتظر بماند تا داده ها بین رم و هارد دیسک مبادله شوند. دستگاههای ذخیرهسازی ثانویه، مانند هارد دیسک، زمان دسترسی کمتری دارند و میتوانند زمان پردازش دستگاه را مختل کنند.در صورت افزایش حجم RAM می توان از این امر جلوگیری کرد.
چگونه حافظه مجازی را افزایش دهیم؟
تنظیمات مدیریت و افزایش حافظه مجازی بسته به سیستم عاملی که استفاده می کنید متفاوت است.
انواع حافظه مجازی
MMU یک کامپیوتر عملیات حافظه مجازی را مدیریت می کند. در اکثر کامپیوترها، سخت افزار MMU در واحد پردازش مرکزی (CPU) یکپارچه شده است. CPU همچنین فضای آدرس مجازی را تولید می کند. به طور کلی، حافظه مجازی یا صفحه بندی شده یا قطعه بندی شده است.صفحه بندی حافظه را به بخش ها یا فایل های صفحه بندی تقسیم می کند. هنگامی که یک رایانه از رم موجود خود استفاده می کند، صفحاتی که استفاده نمی شوند با استفاده از یک فایل swap به هارد دیسک منتقل می شوند. فایل swap فضایی است که روی هارد دیسک برای استفاده به عنوان پسوند حافظه مجازی برای RAM کامپیوتر قرار داده شده است. هنگامی که فایل swap مورد نیاز است، با استفاده از فرآیندی به نام تعویض صفحه به RAM بازگردانده می شود. این سیستم تضمین می کند که سیستم عامل و برنامه های کاربردی کامپیوتر با حافظه واقعی تمام نمی شوند. حداکثر اندازه فایل صفحه می تواند ۱ و نیم تا چهار برابر حافظه فیزیکی رایانه باشد.
فرآیند صفحهبندی حافظه مجازی از جداول صفحه استفاده میکند که آدرسهای مجازی را که سیستم عامل و برنامهها استفاده میکنند به آدرسهای فیزیکی که MMU استفاده میکند ترجمه میکند. ورودی های جدول صفحه نشان می دهد که آیا صفحه در RAM است یا خیر. اگر سیستمعامل یا برنامهای آنچه را که در RAM نیاز دارد پیدا نکند، MMU با یک استثنای خطای صفحه به مرجع حافظه از دست رفته پاسخ میدهد تا سیستمعامل را وادار کند که صفحه را در صورت نیاز به حافظه برگرداند. هنگامی که صفحه در رم قرار می گیرد، آدرس مجازی آن در جدول صفحه ظاهر می شود.
Segmentation همچنین برای مدیریت حافظه مجازی استفاده می شود. این رویکرد حافظه مجازی را به بخش هایی با طول های مختلف تقسیم می کند. بخش هایی که در حافظه استفاده نمی شوند را می توان به فضای حافظه مجازی روی هارد دیسک منتقل کرد. اطلاعات یا فرآیندهای بخشبندی شده در یک جدول بخش ردیابی میشوند، که نشان میدهد آیا یک بخش در حافظه وجود دارد یا خیر، آیا اصلاح شده است و آدرس فیزیکی آن چیست. علاوه بر این، سیستم های فایل در بخش بندی تنها از بخش هایی تشکیل شده اند که در فضای آدرس بالقوه یک فرآیند نگاشت می شوند. بخش بندی و صفحه بندی به عنوان یک مدل حافظه از نظر نحوه تقسیم حافظه متفاوت است. با این حال، فرآیندها همچنین می توانند ترکیب شوند. در این حالت حافظه به فریم یا صفحه تقسیم می شود. بخش ها چندین صفحه را اشغال می کنند و آدرس مجازی هم شامل شماره بخش و هم شماره صفحه می شود.
سایر روشهای جایگزینی صفحه عبارتند از اولین در اول خروج (FIFO)، الگوریتم بهینه و جایگزینی صفحه که اخیراً کمتر استفاده شده است. روش FIFO دارای حافظه است که برای صفحه ای که طولانی ترین زمان در آدرس مجازی بوده است، جایگزینی را انتخاب می کند. روش الگوریتم بهینه، جایگزین های صفحه را بر اساس اینکه کدام صفحه بعید است پس از طولانی ترین زمان جایگزین شود، انتخاب می کند. اگرچه پیاده سازی آن دشوار است، اما منجر به خطاهای کمتری در صفحه می شود. روش جایگزینی صفحه LRU جایگزین صفحه ای می شود که برای طولانی ترین زمان در حافظه اصلی استفاده نشده است.
نحوه مدیریت حافظه مجازی
مدیریت حافظه مجازی در یک سیستم عامل می تواند ساده باشد، زیرا تنظیمات پیش فرضی وجود دارد که میزان فضای هارد دیسک را برای تخصیص به حافظه مجازی تعیین می کند. این تنظیمات برای اکثر برنامهها و فرآیندها کار میکنند، اما ممکن است زمانهایی وجود داشته باشد که لازم باشد مقدار فضای هارد درایو اختصاص داده شده به حافظه مجازی را بهصورت دستی بازنشانی کنید – برای مثال، با برنامههایی که به زمان پاسخ سریع بستگی دارند یا زمانی که رایانه چندین هارد دیسک (HDD).هنگام بازنشانی دستی حافظه مجازی، حداقل و حداکثر فضای هارد دیسک مورد استفاده برای حافظه مجازی باید مشخص شود. تخصیص فضای بسیار کم هارد دیسک برای حافظه مجازی می تواند منجر به خالی شدن رم کامپیوتر شود. اگر سیستمی به طور مداوم به فضای حافظه مجازی بیشتری نیاز دارد، ممکن است عاقلانه باشد که به رم اضافه کنید. سیستمعاملهای رایج معمولاً به کاربران توصیه میکنند که حافظه مجازی را بیش از ۱ و نیم برابر مقدار RAM افزایش ندهند.
مدیریت حافظه مجازی بر اساس سیستم عامل متفاوت است. به همین دلیل، متخصصان فناوری اطلاعات باید اصول اولیه مدیریت حافظه فیزیکی، حافظه مجازی و آدرسهای مجازی را بدانند.مدیریت حافظه مجازی بر اساس سیستم عامل متفاوت است. به همین دلیل، متخصصان فناوری اطلاعات باید اصول اولیه مدیریت حافظه فیزیکی، حافظه مجازی و آدرسهای مجازی را بدانند.سلول های رم در SSD ها نیز طول عمر محدودی دارند. سلول های RAM تعداد نوشتن محدودی دارند، بنابراین استفاده از آنها برای حافظه مجازی اغلب طول عمر درایو را کاهش می دهد.
محدودیت های استفاده از حافظه مجازی چیست؟
اگرچه استفاده از حافظه مجازی مزایای خود را دارد، اما با برخی محدودیت ها نیز همراه است، مانند:
۱٫اگر برنامه ها از حافظه مجازی اجرا شوند کندتر اجرا می شوند.
۲٫داده ها باید بین حافظه مجازی و فیزیکی نگاشت شوند، که نیاز به پشتیبانی سخت افزاری اضافی برای ترجمه آدرس دارد و سرعت کامپیوتر را بیشتر کند می کند.
۳٫اندازه فضای ذخیره سازی مجازی توسط مقدار ذخیره سازی ثانویه و همچنین طرح آدرس دهی با سیستم کامپیوتری محدود می شود.
۴٫اگر RAM کافی وجود نداشته باشد، ممکن است thrashing رخ دهد، که باعث کند عملکرد کامپیوتر شود.
۵٫جابجایی بین برنامه ها با استفاده از حافظه مجازی ممکن است زمان ببرد.
۶٫این مقدار فضای موجود در هارد دیسک را کاهش می دهد.
تفاوت حافظه مجازی (رم مجازی) و حافظه فیزیکی (رم)
هنگامی که در مورد تفاوت بین حافظه مجازی و فیزیکی صحبت می شود، بزرگترین تمایز معمولاً سرعت است. رم به طور قابل توجهی سریعتر از حافظه مجازی است. با این حال، RAM گران تر است.هنگامی که یک کامپیوتر نیاز به ذخیره سازی دارد، RAM اولین مورد استفاده است. حافظه مجازی که کندتر است، تنها زمانی استفاده می شود که RAM پر شده باشد.
کاربران می توانند با خرید و نصب تراشه های رم بیشتر، به طور فعال RAM را به رایانه اضافه کنند. این در صورتی مفید است که آنها به دلیل تکرار زیاد تعویض حافظه، کاهش سرعت را تجربه میکنند. مقدار رم بستگی به آنچه روی رایانه نصب شده است دارد. از سوی دیگر، حافظه مجازی به دلیل اندازه هارد دیسک کامپیوتر محدود است. تنظیمات حافظه مجازی را اغلب می توان از طریق سیستم عامل کنترل کرد.
علاوه بر این، RAM از تکنیک های مبادله استفاده می کند، در حالی که حافظه مجازی از صفحه بندی استفاده می کند. در حالی که حافظه فیزیکی به اندازه تراشه RAM محدود می شود، حافظه مجازی به اندازه هارد دیسک محدود می شود. RAM همچنین دسترسی مستقیم به CPU دارد، در حالی که RAM مجازی دسترسی ندارد.
تاریخچه حافظه مجازی
قبل از توسعه حافظه مجازی، کامپیوترها دارای رم و حافظه ثانویه بودند. کامپیوترهای اولیه از حافظه هسته مغناطیسی برای حافظه اصلی و درام مغناطیسی برای حافظه ثانویه خود استفاده می کردند. حافظه رایانه گران بود و معمولاً در دهه ۱۹۴۰ و ۱۹۵۰ کمبود داشت. با افزایش حجم و پیچیدگی برنامههای رایانهای، توسعهدهندگان باید نگران این بودند که برنامههایشان تمام حافظه اصلی رایانه را مصرف کند و حافظه آن تمام شود.
در آن روزهای اولیه، برنامه نویسان از فرآیندی به نام overlaying برای اجرای برنامه هایی که بزرگتر از حافظه موجود بودند استفاده می کردند. بخشهایی از یک برنامه که بهطور مداوم مورد استفاده قرار نمیگرفتند، بهعنوان پوششهایی تنظیم شدند که در صورت نیاز، پوشش موجود را در حافظه بازنویسی میکردند. به برنامه نویسی گسترده ای نیاز داشت تا همپوشانی کار کند و این یک انگیزه کلیدی برای توسعه حافظه مجازی خودکار بود.فیزیکدان آلمانی فریتز رودولف گونتش به عنوان توسعه دهنده مفهوم حافظه مجازی در سال ۱۹۵۶ شناخته شده است – اگرچه این نکته مورد بحث قرار گرفته است. با این حال، گونچ در نهایت به توصیف نوعی از حافظه کش پرداخت.
مطالب مرتبط: